package com.rpg.controle;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import com.rpg.entidades.Personagem;

public class BatalhaControlador {
	
	PersonagemControlador personagemController = new PersonagemControlador();
	EquipeControlador equipeController;
	
	public BatalhaControlador(EquipeControlador equipeController) {
		this.equipeController =  new EquipeControlador();
	}
	
	public Integer runBasicAttack(Personagem atacado, Personagem atacante) {//o contra-ataque sera feito na vis�o
		int dano = personagemController.getDanoBasicAttack(atacante, atacado);
		atualizarEquipe(atacado);// exclui o personagem da lista se ele estiver sem vida
		return dano;
	}
	
	public Integer runPrimarySkill(Personagem atacado, Personagem atacante) {
		int dano = personagemController.getDanoPrimarySkill(atacante, atacado);
		
		atualizarEquipe(atacado);// exclui o personagem da lista se ele estiver sem vida
	
		return dano;
	}
	
	public List<Integer> runSecundarySkill(List<Personagem> atacados, Personagem atacante) {
		List<Integer> danos = new ArrayList<Integer>();
		
		for(Personagem atacado: atacados){
			danos.add(personagemController.getDanoPrimarySkill(atacante, atacado));
			atualizarEquipe(atacado);// exclui o personagem da lista se ele estiver sem vida
		}
		return danos;
	}
	
	private void atualizarEquipe(Personagem personagem){
		if(!personagemController.vidaIsNotEmpty(personagem)){
			equipeController.excluirPersonagens(personagem);
		}
	}

	
}
